Conversation
- Add TYPE_CHECKING-guarded method stubs to 3 bootstrap mixin classes, resolving all 9 mypy attr-defined errors (staggered_bootstrap.py, two_stage_bootstrap.py, imputation_bootstrap.py) - Add GitHub Actions workflow to execute 15 tutorial notebooks in CI via nbmake (triggered on PR/push/weekly schedule) - Add nbmake>=1.5 to dev dependencies - Clean up TODO.md: remove completed/crossed-out items, correct Sphinx warning diagnosis (376 from manual pages, not 1460 from stubs), mark CallawaySantAnna HonestDiD support as done, add C-LF implementation note Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Overall Assessment Executive Summary
Methodology
Code Quality
Performance
Maintainability
Tech Debt
Security
Documentation/Tests
|
PYTHONPATH=. only affects the shell, not the Jupyter kernel spawned by nbmake. Write a .pth file into site-packages so the kernel can import diff_diff. Also add ipykernel dependency and set DIFF_DIFF_BACKEND via env block. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Reword schedule comment: "smoke test" instead of overstating dataset URL breakage detection (loaders have fallbacks) - Add "Keep in sync" comment on manual dep list, matching the convention in rust-test.yml python-fallback job - Note why pip install -e . isn't used (requires Rust toolchain) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Owner
Author
|
/ai-review |
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall Assessment ✅ Looks good — no unmitigated P0/P1 findings. Executive Summary
Methodology
Code Quality
Performance
Maintainability
Tech Debt
Security
Documentation/Tests
Review basis: static review only. The local environment did not have |
- Increase per-notebook timeout from 300s to 600s (pure Python mode without Rust backend is significantly slower for Monte Carlo and optimization-heavy notebooks) - Exclude 10_trop.ipynb (LOOCV grid search exceeds 600s in pure Python mode) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The notebook was passing all periods (pre and post) as post_periods to MultiPeriodDiD, causing HonestDiD to fail with "No pre-period effects found" since the results had no pre-period classification. Fix: pass only actual post-treatment periods [5-9] to post_periods. MultiPeriodDiD automatically estimates pre-period coefficients for the event study, and HonestDiD can now correctly identify them. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
06_power_analysis.ipynb runs SyntheticDiD simulate_power which is a Monte Carlo simulation too slow for pure-Python CI without the Rust backend. Same category as the already-excluded TROP notebook. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
attr-definederrors by addingTYPE_CHECKING-guarded method stubs to 3 bootstrap mixin classes (staggered_bootstrap.py,two_stage_bootstrap.py,imputation_bootstrap.py).github/workflows/notebooks.yml) to execute 15 tutorial notebooks in CI vianbmake, triggered on PR/push to relevant paths and weekly schedulenbmake>=1.5to dev dependenciesTODO.md: remove completed/crossed-out items, correct Sphinx warning diagnosis (376 from manual page autodoc, not ~1,460 from autosummary stubs), mark CallawaySantAnna HonestDiD support as done, add C-LF implementation noteMethodology references (required if estimator / math changes)
Validation
mypy diff_diffreports 0 errors (down from 9)DIFF_DIFF_BACKEND=python PYTHONPATH=. pytest --nbmake docs/tutorials/Security / privacy
Generated with Claude Code